import router from "./index";
import store from "../store";
import axios from "axios";

//main.js中需要导入

// 路由判断登录 根据路由配置文件的参数


//守卫路由
//判断登录requireAuth
//判断权限

router.beforeEach((to, from, next) => {

  if (to.matched.some(record => record.meta.requireAuth)) { // 判断该路由是否需要登录权限
    // console.log(to.matched.some(record => record.meta.requireAuth+"是否获取到了             isAdmin判断"))
    //拿到token  （也就是所谓的（是否）登录信息）
    var token = localStorage.getItem("token")
    var userinfo = sessionStorage.getItem("userinfo");

    // console.log("userinfo" + userinfo)

    if (token) { // 判断当前的token是否存在 ； 登录存入的token
      console.log('有token')
      //要验证token 由前置拦截器处理

      if (userinfo == null || userinfo === '') {
        console.log('没user')
        // 由于sessionStorage的原因可能userinfo不存在
        axios.get("http://localhost:8080/user/getUserByJWT").then(res => {
          const userinfo = res.data.data //后端返回的登录用户信息（不包含密码）
          store.commit("SET_USERINFO", userinfo)
          if (to.matched.some(record => record.meta.isAdmin)) { //如果 路由 有isAdmin属性

            if (userinfo.roles.some(item => item.name == 'admin')) {
              next()
            } else {
              // Message.error('错了哦，这是一条错误消息');

              alert('错了哦，这是一条错误消息')
              next(
                {
                  path: '/login'
                })
            }
          } else {
            next()
          }
        })
      } else {
        next()
      }

    } else {
      //token 没有  需要登录
      // Message.error('没有token'),
      alert('没有token')
        next({
          path: 'login'
        })
    }

  } else {
    //若不需要Auth 则直接跳转

    next()
  }
})


//点击连接  滚动到页面顶部
router.afterEach((to, from, next) => {
  window.scrollTo(0, 0);

});
